feat(voice): add alternatives comparison pages - #82
Merged
Conversation
Data-driven /voice/alternatives module: a hub page plus one page per competitor via [slug], each targeting "<name> alternative" search intent. Adding a competitor is a single entry in src/lib/voice-alternatives.ts; the hub and route pick it up. Linphone populated as the first comparison. Each page emits FAQPage + BreadcrumbList schema (hub emits ItemList), carries a self-contained intro, an extractable comparison table, a fair "what it is", and a Q&A block — SEO and GEO friendly. Copy is platform-neutral (Mac + Linux), with "Mac" kept in titles only to catch the high-volume query. Also documents the SEO & GEO conventions in CLAUDE.md so future pages inherit them, aligned with the #81 SEO baseline. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
wavekat-eason
pushed a commit
that referenced
this pull request
Jun 4, 2026
🤖 I have created a release *beep* *boop* --- ## [0.0.27](wavekat-com-v0.0.26...wavekat-com-v0.0.27) (2026-06-04) ### Features * **seo:** structured data + social metadata (+ favicon & download dropdown fixes) ([#81](#81)) ([d8fb369](d8fb369)) * **voice:** add alternatives comparison pages ([#82](#82)) ([6d01545](6d01545)) * **voice:** Linux download & OS-aware buttons ([#79](#79)) ([590219d](590219d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a data-driven alternatives module under the Voice section — multiple pages, not one, so each comparison can rank for its own " alternative" search intent.
src/lib/voice-alternatives.ts— single source of truth. One entry per competitor (SEO title/description, honest "what it is", a capability comparison table, choose-them/choose-us lists, FAQs). Adding a competitor = append one entry./voice/alternatives/— hub page; emitsItemListschema, links out, ranks for the broad term./voice/alternatives/[slug]/— one page per competitor viagetStaticPaths; emitsFAQPage+BreadcrumbListschema.Voice.astro— adds thealternativessub-nav tab and a prefix-based active state so per-competitor pages keep the tab lit.Linphone is populated as the first comparison, framed as a fair guide (names what Linphone is genuinely good at, then the honest differentiators: auto-record + transcription + searchable history + guided provider setup).
SEO & GEO
<h1>, page-type JSON-LD referencing the org@id, and self-contained answers + an extractable comparison table + a Q&A block (the structures AI answer engines quote most).CLAUDE.mdgains an SEO & GEO section codifying these conventions for all future pages, aligned with the feat(seo): structured data + social metadata (+ favicon & download dropdown fixes) #81 SEO baseline.Testing
astro buildpasses;/voice/alternatives/and/voice/alternatives/linphone/generate and land in the sitemap.🤖 Generated with Claude Code